package com.niiwoo.civet.account.service;

import com.niiwoo.civet.account.dto.request.FundsFreezeOrderApplyRequestDTO;
import com.niiwoo.civet.account.dto.request.FundsUnfreezeOrderApplyRequestDTO;
import com.niiwoo.civet.account.dto.response.FundsFreezeOrderApplyResponseDTO;
import com.niiwoo.civet.account.dto.response.FundsFreezeOrderResponseDTO;
import com.niiwoo.civet.account.dto.response.FundsUnfreezeOrderApplyResponseDTO;
import com.niiwoo.civet.account.dto.response.FundsUnfreezeOrderResponseDTO;
import com.niiwoo.civet.account.enums.FundsOrderTypeEnum;

/**
 * @Author Jaylin
 * @Date 2018-04-23
 * @Descript 账户资金冻结或解冻dubbo服务接口
 */
public interface AccountFundsFreezeDubboService {

    /**
     * 申请冻结接口
     * @param fundsFreezeOrderApplyRequestDTO
     */
    FundsFreezeOrderApplyResponseDTO applyFundsFreezeOrder(FundsFreezeOrderApplyRequestDTO fundsFreezeOrderApplyRequestDTO);

    /**
     * 账户资金解冻接口
     * @param fundsUnfreezeOrderApplyRequestDTO
     */
    FundsUnfreezeOrderApplyResponseDTO fundsUnfreezeOrder(FundsUnfreezeOrderApplyRequestDTO fundsUnfreezeOrderApplyRequestDTO);

    /**
     * 资金冻结查询dubbo接口
     * @param orderId
     * @param fundsOrderTypeEnum
     * @return
     */
    FundsFreezeOrderResponseDTO queryFundsFreezeOrderResult(Long orderId, FundsOrderTypeEnum fundsOrderTypeEnum);

    /**
     * 资金解冻查询dubbo接口
     * @param orderId
     * @param fundsOrderTypeEnum
     * @return
     */
    FundsUnfreezeOrderResponseDTO queryFundsUnfreezeOrderResult(Long orderId, FundsOrderTypeEnum fundsOrderTypeEnum);

    /**
     * job处理资金冻结订单(处理中)
     */
    void jobProcessingFreezeOrder();

    /**
     * job处理资金解冻订单(处理中)
     */
    void jobProcessingUnfreezeOrder();
}
